/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Interfaces;

import DataTypes.DataEvento;
import DataTypes.DataMensaje;
import DataTypes.DataUsuario;
import DataTypes.DataHistorial;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.HashMap;
import objetos.Usuario;
/**
 *
 * @author jota
 */
public interface ICtrlUsuarios {
        
    public abstract void altaUsuario(DataUsuario du) throws IOException;
    public abstract void bloquearUsuario(DataUsuario du) throws IOException;
    public abstract HashMap listaUsuarios ();
    public abstract boolean containsKey (String clave);
    public abstract DataUsuario getUsuario(String clave);
    public abstract void ModificarUsuario(DataUsuario du,String clave);
    public abstract ArrayList<DataUsuario> listarDUsuarios();
    public abstract void AgregarAmigo (String claveUsu,String amigo, Calendar fecha)throws IOException;
    public abstract ArrayList<DataUsuario> listarDAmigos(String ClaveUsu);
    public abstract void quitarAmigo (String claveUsu,String amigo)throws IOException;
    public abstract boolean esCreadorGrupo (String correo);
    public abstract void agregarEvento(DataEvento even,String usu);
    public abstract HashMap<String,DataEvento> listarCalendarioEventos(String nomGrup);
    public abstract boolean coincidePassUsr(String mail, String pass);
    public abstract boolean yaExisteNick(String nick);
    public abstract boolean cambioPassUsr(String mail);
    public abstract boolean sonUsrAmigos(String mail1, String mail2);
    public abstract void activarNotificaciones(String mailUsr, boolean activar);
    public abstract Usuario getUSuarioU(String clave);
    public abstract void agregarHistorial(String idUsuario,String idAmigo,ArrayList<DataMensaje>list);
    public abstract DataHistorial getHistorial(String usu,String amigo);
    public abstract void agregarSolicitudAmistad(String solicitante, String solicitado);
    public abstract boolean existeSolicitudUsuario(String solicitante, String solicitado);
    public abstract void cancelarSolicitud(String solicitante, String solicitado);
    public abstract void aceptarSolicitud(String solicitante, String solicitado);
    public abstract ArrayList<DataUsuario> listarSolicitudes(String mailUsr);
    public abstract int promedioPuntajeUsr(String mailUsr);
    public abstract ArrayList<DataUsuario> listarSugerenciaAmigos(String mailUsr);
}
